Skip to main content

Catching Hackers with a Honeypot - Installation

· 8 min read
Orkanyx
Orkanyx
Creator of Cyberforge

We have always been told that in cybersecurity, attackers are always one step ahead. They will use vulnerabilities and/or techniques that defenders know nothing about.

Thus, to reduce this gap, defenders have found a method that allows them to both protect themselves and understand the new techniques used by attackers. This method is called a honeypot.

A honeypot is a system, intentionally left vulnerable and easily accessible by attackers. The objective is to collect IOCs (Indicators of Compromise) and IOAs (Indicators of Attack) to understand the techniques used by attackers.

In this article, we will discuss the deployment of the Tpot solution created by Deutsche Telekom:

This solution provides a "turnkey" honeypot with different "sensors" that rely on various services to collect maximum data.

Prerequisites

On the GitHub page, Tpot CE mentions the following prerequisites for a "hive" (sensors + log analyzer):

My Configuration

I personally chose the following configuration:

  • Host: DigitalOcean
  • Distribution: Ubuntu 24.10
  • CPU: 4vCPU
  • Storage: 160GB

So in summary, I do not meet the prerequisites... However, it works quite well:

img.png

Installation

Once you have a clean installation of your distribution, create a new user and add them to the sudo group:

Adding user hpot
adduser hpot
usermod -aG sudo hpot
User "tpot"

The "tpot" user is created by the tpot installer, so do not use this username.

Then, log in with this user and launch the installation:

Executing tpot installation script
su hpot
cd ~
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"

Follow the installer's instructions. At some point, it will offer you a choice of services (honeypots) you want to use. Choose the ones that suit you from the following table:

Summary Table
PortProtocolDirectionDescriptionServices EmulatedSummary DescriptionGitHub Link
80, 443tcpoutgoingT-Pot Management: Install, Updates, Logs (i.e. OS, GitHub, DockerHub, Sicherheitstacho, etc.)T-Pot ManagementT-Pot management platformT-Pot GitHub
11434tcpoutgoingLLM based honeypots: Access your Ollama installationLanguage Models (LLM)LLM-based honeypot to interact with OllamaOllama GitHub
64294tcpincomingT-Pot Management: Sensor data transmission to hive (through NGINX reverse proxy) to 127.0.0.1:64305Data TransmissionTransmits sensor data to T-Pot hiveT-Pot GitHub
64295tcpincomingT-Pot Management: Access to SSHSSHSSH access for T-Pot managementT-Pot GitHub
64297tcpincomingT-Pot Management: Access to NGINX reverse proxyNGINXNGINX reverse proxy access for T-PotT-Pot GitHub
5555tcpincomingHoneypot: ADBHoneyAndroid Debug Bridge (ADB)Emulates ADB service to capture attacks on Android devicesADBHoney GitHub
22tcpincomingHoneypot: Beelzebub (LLM required)SSHSSH honeypot with language model integrationBeelzebub GitHub
5000udpincomingHoneypot: CiscoASACisco ASA (VPN)Emulates Cisco ASA VPN service to capture attacksCiscoASA GitHub
8443tcpincomingHoneypot: CiscoASACisco ASA (HTTPS)Emulates Cisco ASA HTTPS service to capture attacksCiscoASA GitHub
443tcpincomingHoneypot: CitrixHoneypotCitrix (HTTPS)Emulates Citrix service to capture attacks on Citrix serversCitrixHoneypot GitHub
80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100tcpincomingHoneypot: ConpotICS/SCADA (Industrial Automation)Emulates industrial systems (ICS/SCADA) to capture attacksConpot GitHub
161, 623udpincomingHoneypot: ConpotSNMP, IPMIEmulates SNMP and IPMI protocols to capture attacksConpot GitHub
22, 23tcpincomingHoneypot: CowrieSSH, TelnetEmulates SSH and Telnet services to capture attacksCowrie GitHub
19, 53, 123, 1900udpincomingHoneypot: DdospotChargen, DNS, NTP, SSDPEmulates vulnerable services to capture DDoS attacksDdospot GitHub
11112tcpincomingHoneypot: DicompotDICOM (Medical Imaging)Emulates DICOM service to capture attacks on medical systemsDicompot GitHub
21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081tcpincomingHoneypot: DionaeaFTP, SMB, HTTP, SQL, etc.Emulates multiple services to capture attacks on various protocolsDionaea GitHub
69udpincomingHoneypot: DionaeaTFTPEmulates TFTP service to capture attacksDionaea GitHub
9200tcpincomingHoneypot: ElasticpotElasticsearchEmulates Elasticsearch service to capture attacksElasticpot GitHub
22tcpincomingHoneypot: EndlesshSSHEmulates SSH service to capture attacks with endless connectionEndlessh GitHub
80, 443, 8080, 8443tcpincomingHoneypot: Galah (LLM required)HTTP, HTTPSHTTP/HTTPS honeypot with language model integrationGalah GitHub
8080tcpincomingHoneypot: Go-potHTTPEmulates HTTP service to capture attacksGo-pot GitHub
80, 443tcpincomingHoneypot: H0neytr4pHTTP, HTTPSEmulates HTTP/HTTPS services to capture attacksH0neytr4p GitHub
21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900tcpincomingHoneypot: HeraldingFTP, SSH, Telnet, SMTP, HTTP, etc.Emulates multiple services to capture attacks on various protocolsHeralding GitHub
3000tcpincomingHoneypot: HoneyamlHTTPEmulates HTTP service to capture attacks with YAML filesHoneyaml GitHub
21, 22, 23, 25, 80, 110, 143, 389, 443, 445, 631, 1080, 1433, 1521, 3306, 3389, 5060, 5432, 5900, 6379, 6667, 8080, 9100, 9200, 11211tcpincomingHoneypot: qHoneypotsFTP, SSH, Telnet, SMTP, HTTP, LDAP, etc.Emulates a wide range of services to capture attacksqHoneypots GitHub
53, 123, 161, 5060udpincomingHoneypot: qHoneypotsDNS, NTP, SNMP, SIPEmulates UDP services to capture attacksqHoneypots GitHub
631tcpincomingHoneypot: IPPHoneyIPP (Printing)Emulates IPP service to capture attacks on printersIPPHoney GitHub
80, 443, 8080, 9200, 25565tcpincomingHoneypot: Log4PotHTTP, HTTPS, Elasticsearch, MinecraftEmulates services vulnerable to Log4ShellLog4Pot GitHub
25tcpincomingHoneypot: MailoneySMTPEmulates SMTP service to capture attacks on mail serversMailoney GitHub
2575tcpincomingHoneypot: MedpotDICOM (Medical Imaging)Emulates DICOM service to capture attacks on medical systemsMedpot GitHub
9100tcpincomingHoneypot: MiniprintPrintingEmulates printing service to capture attacksMiniprint GitHub
6379tcpincomingHoneypot: RedishoneypotRedisEmulates Redis service to capture attacksRedishoneypot GitHub
5060tcp/udpincomingHoneypot: SentryPeerSIPEmulates SIP service to capture attacks on VoIP systemsSentryPeer GitHub
80tcpincomingHoneypot: Snare (Tanner)HTTPEmulates HTTP service to capture attacks with advanced interactionsSnare GitHub
8090tcpincomingHoneypot: WordpotHTTPEmulates HTTP service to capture attacks on WordPress blogsWordpot GitHub
tip

Once the installation is complete, if you were connected via SSH to your VM, you may lose the connection since a honeypot has taken your place.

Here are the new ports that will allow you to connect:

  • SSH: 64295
  • NGINX: 64297

It is recommended to either:

  • Implement a VPN to access these 2 ports only from your machine, but this will use more resources.
  • Whitelist your IP via a firewall (UFW, iptables, etc.)

Getting Started

Once connected to your VM, you can access the Tpot web interface via port 64294:

You then have access to several services:

  • Attack map: Map of ongoing attacks
  • Cyberchef: Tool to decode data
  • Elasticvue: Node/cluster management
  • Kibana: Dashboards + log visualization
  • Spiderfoot: Reconnaissance tool

What will interest us initially is the Kibana service. We have a general dashboard as the home page:

There is also a dashboard for each honeypot, allowing you to see ongoing attacks, attacker IPs, payloads used, etc.

Here for example the dashboard of "Cowrie", an SSH honeypot:

Or here the dashboard of "Dionaea", a multi-protocol honeypot:

We can then look at logs from our different honeypots. To do this, go to the "Discover" tab:

You can then see logs in real-time, and filter them by honeypot, IP, payload, etc:

We can then filter and select these logs with KQL (Kibana Query Language) to export and analyze them. But that will be explained in part 2!